草庐IT

Spring JPA PostgreSQL + MongoDB

全部标签

MongoDB 如何按键数组(不是值)过滤?

我有一个包含用户键的数组。ID为array('111','333')的用户;我只会得到以下方案,只有具有这些ID的用户的某些字段(名称)。{"_id":"78787878","users":{"111":{"name":"William","e":"w@sas..."...},"222":{"name":"Sarah","e":"s@sas..."},"333":{"name":"Marie","e":"m@sas..."},..},..}我的预期结果是这样的:{"_id":"78787878","users":{"111":{"name":"William",},"333":{"na

mongodb - Mongoose 聚合不按输入日期过滤

我正在尝试构建一个聚合查询,但是当我将$match与日期一起使用时,它并没有像我预期的那样工作。如果我使用其他字段而不是任何Date字段,它会按预期工作。我使用的代码示例如下:constres=awaitReservation.aggregate([{$match:{createdAt:{$lte:req.endDate}}}]).exec();constres=awaitReservation.find({createdAt:{$lte:req.endDate}}).exec();第一行不工作,但第二行工作得很好。.find()和.aggregate()有什么区别。感谢您的帮助!

MongoDB $text 运算符匹配文档,其中搜索字符串是子字符串

我知道$text运算符不适用于正则表达式...但我需要一些搜索才能按以下方式工作。文件:{"field1":"一些内容","field2:""另一个内容"}{"field1":"还有一个内容","field2":"最终内容"}如果我们按字符串"yeano"搜索,两个文档都应该在结果中,因为ye出现在第二个文档中,而ano出现在第一个。由于大小写/变音符号不敏感,我们将非常感谢使用$text运算符的解决方法。我也会接受行为不相等但接近的东西。主要关注的是效率,因为我已经有一个O(nlgn)的解决方案,但这对于搜索来说非常昂贵...... 最佳答案

mongodb - meteor 发布/订阅行为

我目前正在我的应用程序中实现实时搜索功能,但我遇到了一些让我感到困惑的行为。背景是:我的服务器上有两个来自同一个MongoDB数据库的订阅,名为posts。第一个订阅订阅最新的50篇帖子,并将数据发送到MiniMongo集合Posts。第二个订阅订阅匹配用户输入的任何搜索的帖子,并将此数据发送到MiniMongo集合PostsSearch,如下所示。//clientPosts=newMongo.Collection('posts');PostsSearch=newMongo.Collection('postsSearch');//serverMeteor.publish('postsP

MongoDb:排序文本搜索结果

我创建了一个查询,它返回的结果包含“Be”字段值内。例如:db.collection.find({"$or":[{"name.en":{"$regex":"Be"}},{"defaultName":{"$regex":"Be"}}]})但返回的结果是随机排序的,有的在单词中包含"Be",有的在开头,有的在结尾。是否可以创建一个查询,按以下方式对结果进行排序:第一个返回的结果将以“Be”开头,然后是所有其他结果?查询结果示例:{"defaultName":"Belgium",...},{"defaultName":"Berlin",...},{"defaultName":"Bombei"

mongodb - 如何在mongodb中对map reduce结果执行mapreduce

我想知道我是否可以像管道一样在mapreduce函数的结果上执行mapreduce而无需将其写入集合,谢谢大家。我的英语不好,希望你能理解我的问题:( 最佳答案 如果不在某种集合中存储中间数据,目前不支持mapreduce链接。MongoDB中的mapreduce效率不高,MongoDB建议导出数据并在必要时在Hadoop等适当的框架中运行mapreduce。 关于mongodb-如何在mongodb中对mapreduce结果执行mapreduce,我们在StackOverflow上找到

node.js - 如何通过 mongoose 虚拟字段查询找到 MongoDB 文档?

如何通过使用mongoose的“findOne”/“find”功能找到特定文档,其中的结果是通过虚拟字段过滤的,该字段实际上并未出现在数据库中?我会尝试进一步解释:在我的“用户”模型中,我有一个名为“电子邮件”的字段。我想为我的nodejs应用程序中的其他功能(主要是登录验证和其他内容)为“电子邮件”创建一个别名作为“用户key”。为了创建别名,我这样做了:userSchema.virtual('userkey').get(function(){returnthis.email;});现在,在创建别名后,我想按以下方式过滤我的搜索结果:restApi.post('/login',fun

Mongodb $near、$geoWithin 和 $text

最初我想支持带有geo$near功能的mongodb文本搜索。后来意识到这两个不能一起使用,因为都需要索引。后来我决定改用$geoWithin。但是,结果不像$near那样按距离排序。我想知道是否有任何方法可以按“距离”对$geoWithin返回的结果进行排序? 最佳答案 $geoWithin运算符不返回排序结果。因此,MongoDB可以比地理空间$near或$nearSphere查询更快地返回$geoWithin查询,后者对结果进行排序。所以简而言之,使用$near或$nearSphere以便您可以获得排序结果。见docs:The

mongodb - 不指定所有参数的更新插入

我希望我可以使用“行”来$set,因为它包含我想要更新的所有数据,但得到以下信息。我的代码如下:c:\mongo脚本>csvimporter.py追溯(最近一次通话):....pymongo.errors.WriteError:空更新路径无效。defimport_fame_dump(input_file='AB.csv'):fame_export=csv.DictReader(open(input_file),dialect='excel')leads=[]fame_export.fieldnames+['ImportDate']forrowinfame_export:row['Imp

mongodb - 如何从代理后面的 shell 连接 Mongolab?

我正在尝试从我的mongoshell连接MongolabURI及其显示MongoDBshellversion:3.1.7connectingto:ds015859.mlab.com:15859/instabuy2016-03-16T16:49:15.581+0530WNETWORK[thread1]Failedtoconnectto54.224.218.3:15859,reason:errno:10061Noconnectioncouldbemadebecausethetargetmachineactivelyrefused2016-03-16T16:49:15.581+0530EQU